package dssd.acciones;

import java.util.Calendar;
import java.util.Date;

import dssd.constantes.Constantes;
import dssd.modelo.Conductor;
import dssd.modelo.Licencia;
import dssd.modelo.SolicitudRenovacion;
import dssd.modelo.Usuario;
import dssd.servicios.ConductorService;
import dssd.servicios.IConductorService;
import dssd.servicios.ILicenciasService;

public class CrearSolicitudRenovacion extends AbstractAccion {
	
	private IConductorService conductorService;
	private ILicenciasService licenciasService;


	public ILicenciasService getLicenciasService() {
		return licenciasService;
	}

	public void setLicenciasService(ILicenciasService licenciasService) {
		this.licenciasService = licenciasService;
	}

	public IConductorService getConductorService() {
		return conductorService;
	}

	public void setConductorService(IConductorService conductorService) {
		this.conductorService = conductorService;
	}

	
public String execute() throws Exception {
	Conductor conductor=(Conductor) this.getSession().get(CONDUCTOR);
	Integer cantInfracciones=this.getLicenciasService().consultarInfracciones(this.getUsuario(),conductor.getDni());
	if (cantInfracciones == 0){
		Date fechaVencimientoUltimaSolicitud=conductor.getUltimaSolicitud().getLicencia().getFechaVencimiento();
		if (fechaVencimientoUltimaSolicitud.before(new Date())){
			SolicitudRenovacion solicitud = new SolicitudRenovacion(conductor, new Date());
			this.getLicenciasService().guardarSolicitud(this.getUsuario(), solicitud);
			return SUCCESS;
		}else{
			return VIGENTE;
		}
	}else{
		this.getRequest().setAttribute("infracciones", cantInfracciones);
		return ERROR;
	}
}

}